﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class Анкетирование
	{
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА АНКЕТИРОВАНИЕ
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// Функция возвращает выборку по вопросам анкеты
		//

		public object ВыполнитьЗапросПоАнкете(/*Анкета*/)
		{
			//Запрос = Новый Запрос();
			//Запрос.УстановитьПараметр("Ссылка",	Анкета);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ТиповыеАнкетыВопросыАнкеты.НомерСтроки КАК НомерСтроки,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос КАК Вопрос,
	|	ТиповыеАнкетыВопросыАнкеты.Раздел КАК Раздел,
	|	ТиповыеАнкетыВопросыАнкеты.Раздел.Код КАК КодРаздела,
	|	"". "" + ТиповыеАнкетыВопросыАнкеты.Раздел.Наименование КАК РазделНаименование,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы КАК КолонкаТаблицы,
	|	ВариантыОтветовОпросов.Наименование КАК ВариантыОтветовНаименование,
	|	ВариантыОтветовОпросовТабличные.Наименование КАК КолонкаТаблицыВариантыОтветовНаименование,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.Наименование КАК Наименование,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.ТипОтветаНаВопрос КАК ТипОтветаНаВопрос,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.Длина КАК Длина,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.Код КАК Код,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.Родитель КАК Родитель,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.ПолнаяФормулировка КАК ПолнаяФормулировка,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.ТипЗначения КАК ТипЗначения,
	|	ВЫБОР
	|		КОГДА ТиповыеАнкетыВопросыАнкеты.Обязательный В (ЗНАЧЕНИЕ(Перечисление.ОбязательностьЗаполненияОтветаНаВопрос.НеОбязателенКЗаполнению), ЗНАЧЕНИЕ(Перечисление.ОбязательностьЗаполненияОтветаНаВопрос.ПустаяСсылка))
	|			ТОГДА ЛОЖЬ
	|		ИНАЧЕ ИСТИНА
	|	КОНЕЦ КАК ОбязателенДляЗаполнения,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.КоличествоСтрокТаблицы КАК СтрокВТаблице,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.Предопределенный КАК Предопределенный,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.ВидКонтактнойИнформации КАК ВидКонтактнойИнформации,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.ВидКонтактнойИнформации.Тип КАК ТипКонтактнойИнформации,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос.ВидКонтактнойИнформации.ВидОбъектаКонтактнойИнформации КАК ВидОбъектаКонтактнойИнформации,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.ТипЗначения,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.ТипОтветаНаВопрос,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.Длина,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.ПолнаяФормулировка,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.Код КАК КолонкаТаблицыКод,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.Родитель,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.Наименование,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.КоличествоСтрокТаблицы,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.Предопределенный,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.ВидКонтактнойИнформации,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.ВидКонтактнойИнформации.Тип КАК КолонкаТаблицыТипКонтактнойИнформации,
	|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы.ВидКонтактнойИнформации.ВидОбъектаКонтактнойИнформации КАК КолонкаТаблицыВидОбъектаКонтактнойИнформации,
	|	ВопросыДляАнкетированияКолонкиТаблицы.НомерСтроки КАК КолонкаТаблицыНомерСтроки,
	|	ВариантыОтветовОпросовТабличные.Код КАК КолонкаТаблицыВариантыОтветовКод,
	|	ВариантыОтветовОпросовТабличные.Ссылка КАК КолонкаТаблицыВариантыОтветовСсылка,
	|	ВариантыОтветовОпросовТабличные.ТребуетРазвернутыйОтвет КАК КолонкаТаблицыВариантыОтветовТребуетРазвернутыйОтвет,
	|	ЛОЖЬ КАК КолонкаТаблицыОбязателенДляЗаполнения,
	|	ВариантыОтветовОпросов.Код КАК ВариантыОтветовКод,
	|	ВариантыОтветовОпросов.Ссылка КАК ВариантыОтветовСсылка,
	|	ВариантыОтветовОпросов.ТребуетРазвернутыйОтвет КАК ВариантыОтветовТребуетРазвернутыйОтвет
	|ИЗ
	|	Справочник.ТиповыеАнкеты.ВопросыАнкеты КАК ТиповыеАнкетыВопросыАнкеты
	|		ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ВопросыДляАнкетирования.КолонкиТаблицы КАК ВопросыДляАнкетированияКолонкиТаблицы
	|			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтветовОпросов КАК ВариантыОтветовОпросовТабличные
	|			ПО ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы = ВариантыОтветовОпросовТабличные.Владелец
	|		ПО ТиповыеАнкетыВопросыАнкеты.Вопрос = ВопросыДляАнкетированияКолонкиТаблицы.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтветовОпросов КАК ВариантыОтветовОпросов
	|		ПО ТиповыеАнкетыВопросыАнкеты.Вопрос = ВариантыОтветовОпросов.Владелец
	|		ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования
	|		ПО ТиповыеАнкетыВопросыАнкеты.Вопрос = ВопросыДляАнкетирования.Ссылка
	|ГДЕ
	|	ТиповыеАнкетыВопросыАнкеты.Ссылка = &Ссылка
	|	И ТиповыеАнкетыВопросыАнкеты.Вопрос <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.ПустаяСсылка)
	|
	|УПОРЯДОЧИТЬ ПО
	|	КодРаздела,
	|	НомерСтроки,
	|	ВариантыОтветовКод,
	|	КолонкаТаблицыНомерСтроки,
	|	КолонкаТаблицыВариантыОтветовКод
	|ИТОГИ
	|	МАКСИМУМ(НомерСтроки),
	|	МАКСИМУМ(КодРаздела),
	|	МАКСИМУМ(ОбязателенДляЗаполнения),
	|	МАКСИМУМ(КолонкаТаблицыНомерСтроки),
	|	МАКСИМУМ(КолонкаТаблицыВариантыОтветовКод),
	|	МАКСИМУМ(ВариантыОтветовКод)
	|ПО
	|	Раздел,
	|	Вопрос,
	|	КолонкаТаблицы";*/
			return null;
		}
		// ВыполнитьЗапросПоАнкете()

		public object ВыполнитьЗапросПоОпросу(/*ДокументОпрос*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Опрос",	ДокументОпрос.Ссылка);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ОпросВопросы.Вопрос КАК Вопрос,
	|	ОпросВопросы.Ответ,
	|	ОпросВопросы.ТиповойОтвет КАК ТиповойОтвет,
	|	ОпросВопросы.Вопрос КАК КолонкаТаблицы,
	|	NULL КАК НомерСтрокиВТаблице,
	|	ОпросВопросы.Вопрос КАК ВопросКоличество
	|ИЗ
	|	Документ.Опрос.Вопросы КАК ОпросВопросы
	|ГДЕ
	|	ОпросВопросы.Ссылка.Ссылка = &Опрос
	|	И (НЕ ОпросВопросы.Вопрос.ТипОтветаНаВопрос В (ЗНАЧЕНИЕ(Перечисление.ТипыОтветаНаВопросАнкеты.Табличный), ЗНАЧЕНИЕ(Перечисление.ТипыОтветаНаВопросАнкеты.НесколькоВариантовОтвета)))
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ОпросСоставнойОтвет.ВопросВладелец,
	|	ОпросСоставнойОтвет.Ответ,
	|	ОпросСоставнойОтвет.ТиповойОтвет,
	|	ОпросСоставнойОтвет.Вопрос,
	|	ОпросСоставнойОтвет.НомерСтрокиВТаблице,
	|	ОпросСоставнойОтвет.ВопросВладелец
	|ИЗ
	|	Документ.Опрос.СоставнойОтвет КАК ОпросСоставнойОтвет
	|ГДЕ
	|	ОпросСоставнойОтвет.Ссылка.Ссылка = &Опрос
	|ИТОГИ
	|	КОЛИЧЕСТВО(ВопросКоличество)
	|ПО
	|	Вопрос";*/
			return null;
		}

		public object ВыполнитьЗапросПоДанным(/*ОпрашиваемоеЛицо, ТиповаяАнкета*/)
		{
			if(true/*ТипЗнч(ОпрашиваемоеЛицо) = Тип("СправочникСсылка.ФизическиеЛица")*/)
			{
				//Запрос = Новый Запрос;
				//Запрос.УстановитьПараметр("Ссылка",	ОпрашиваемоеЛицо);
				//Запрос.УстановитьПараметр("Анкета",	ТиповаяАнкета);
				/*Запрос.Текст =
		"ВЫБРАТЬ
		|	ВопросыДляАнкетированияКолонкиТаблицы.Ссылка КАК Вопрос,
		|	ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы КАК КолонкаТаблицы,
		|	ФизическиеЛицаСоставСемьи.НомерСтроки КАК НомерСтрокиВТаблице,
		|	"""" КАК Ответ,
		|	ВЫБОР
		|		КОГДА ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.СоставСемьиСтепеньРодства)
		|			ТОГДА ФизическиеЛицаСоставСемьи.СтепеньРодства
		|		КОГДА ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.СоставСемьиРодственник)
		|			ТОГДА ФизическиеЛицаСоставСемьи.Имя
		|		КОГДА ВопросыДляАнкетированияКолонкиТаблицы.КолонкаТаблицы = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.СоставСемьиДатаРождения)
		|			ТОГДА ФизическиеЛицаСоставСемьи.ДатаРождения
		|	КОНЕЦ КАК ТиповойОтвет
		|ИЗ
		|	ПланВидовХарактеристик.ВопросыДляАнкетирования.КолонкиТаблицы КАК ВопросыДляАнкетированияКолонкиТаблицы
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.СоставСемьи КАК ФизическиеЛицаСоставСемьи
		|		ПО (ФизическиеЛицаСоставСемьи.Ссылка = &Ссылка)
		|			И (ВопросыДляАнкетированияКолонкиТаблицы.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.ТСоставСемьи))
		|			И ((НЕ ВопросыДляАнкетированияКолонкиТаблицы.Ссылка.ЭтоГруппа))
		|			И (ВопросыДляАнкетированияКолонкиТаблицы.Ссылка В
		|				(ВЫБРАТЬ
		|					ТиповыеАнкетыВопросыАнкеты.Вопрос
		|				ИЗ
		|					Справочник.ТиповыеАнкеты.ВопросыАнкеты КАК ТиповыеАнкетыВопросыАнкеты
		|				ГДЕ
		|					ТиповыеАнкетыВопросыАнкеты.Ссылка = &Анкета))
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ВопросыДляАнкетирования.Ссылка,
		|	NULL,
		|	NULL,
		|	"""",
		|	ВЫБОР
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.Фамилия)
		|			ТОГДА ФИОФизЛицСрезПоследних.Фамилия
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.Имя)
		|			ТОГДА ФИОФизЛицСрезПоследних.Имя
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.Отчество)
		|			ТОГДА ФИОФизЛицСрезПоследних.Отчество
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.ДатаРождения)
		|			ТОГДА ФизическиеЛица.ДатаРождения
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.ИНН)
		|			ТОГДА ФизическиеЛица.ИНН
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.Пол)
		|			ТОГДА ФизическиеЛица.Пол
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.КодИМНС)
		|			ТОГДА ФизическиеЛица.КодИМНС
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.СтраховойНомерПФР)
		|			ТОГДА ФизическиеЛица.СтраховойНомерПФР
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.Гражданство)
		|			ТОГДА ГражданствоФизЛицСрезПоследних.Страна
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.СемейноеПоложение)
		|			ТОГДА СемейноеПоложениеФизЛицСрезПоследних.СемейноеПоложение
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.ВидДокументаУдостоверяющегоЛичность)
		|			ТОГДА ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.СерияДокумента)
		|			ТОГДА ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.НомерДокумента)
		|			ТОГДА ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.ДатаВыдачиДокумента)
		|			ТОГДА ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи
		|		КОГДА ВопросыДляАнкетирования.Ссылка = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВопросыДляАнкетирования.КемВыданДокумент)
		|			ТОГДА ВЫРАЗИТЬ(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК СТРОКА(1000))
		|	КОНЕЦ
		|ИЗ
		|	ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
		|			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(, ФизЛицо = &Ссылка) КАК ФИОФизЛицСрезПоследних
		|			ПО ФИОФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка
		|			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц.СрезПоследних(, ФизЛицо = &Ссылка) КАК ГражданствоФизЛицСрезПоследних
		|			ПО ГражданствоФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка
		|			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СемейноеПоложениеФизЛиц.СрезПоследних(, ФизЛицо = &Ссылка) КАК СемейноеПоложениеФизЛицСрезПоследних
		|			ПО СемейноеПоложениеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка
		|			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(, ФизЛицо = &Ссылка) КАК ПаспортныеДанныеФизЛицСрезПоследних
		|			ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка
		|		ПО (ФизическиеЛица.Ссылка = &Ссылка)
		|			И ((НЕ ВопросыДляАнкетирования.ТипОтветаНаВопрос В (ЗНАЧЕНИЕ(Перечисление.ТипыОтветаНаВопросАнкеты.Табличный), ЗНАЧЕНИЕ(Перечисление.ТипыОтветаНаВопросАнкеты.КонтактнаяИнформация))))
		|			И ((НЕ ВопросыДляАнкетирования.ЭтоГруппа))
		|			И (ВопросыДляАнкетирования.Ссылка В
		|				(ВЫБРАТЬ
		|					ТиповыеАнкетыВопросыАнкеты.Вопрос
		|				ИЗ
		|					Справочник.ТиповыеАнкеты.ВопросыАнкеты КАК ТиповыеАнкетыВопросыАнкеты
		|				ГДЕ
		|					ТиповыеАнкетыВопросыАнкеты.Ссылка = &Анкета))
		|
		|ОБЪЕДИНИТЬ
		|
		|ВЫБРАТЬ
		|	ВопросыДляАнкетирования.Ссылка,
		|	NULL,
		|	NULL,
		|	"""",
		|	ВЫБОР
		|		КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
		|			ТОГДА КонтактнаяИнформация.Поле1 + ""¤"" + КонтактнаяИнформация.Поле2 + ""¤"" + КонтактнаяИнформация.Поле3 + ""¤"" + КонтактнаяИнформация.Поле4
		|		КОГДА КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
		|			ТОГДА КонтактнаяИнформация.Поле1 + ""¤"" + КонтактнаяИнформация.Поле2 + ""¤"" + КонтактнаяИнформация.Поле3 + ""¤"" + КонтактнаяИнформация.Поле4 + ""¤"" + КонтактнаяИнформация.Поле5 + ""¤"" + КонтактнаяИнформация.Поле6 + ""¤"" + КонтактнаяИнформация.Поле7 + ""¤"" + КонтактнаяИнформация.Поле8 + ""¤"" + КонтактнаяИнформация.Поле9
		|	КОНЕЦ
		|ИЗ
		|	ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
		|		ПО ВопросыДляАнкетирования.ВидКонтактнойИнформации = КонтактнаяИнформация.Вид
		|			И ((НЕ ВопросыДляАнкетирования.ЭтоГруппа))
		|			И (ВопросыДляАнкетирования.Ссылка В
		|				(ВЫБРАТЬ
		|					ТиповыеАнкетыВопросыАнкеты.Вопрос
		|				ИЗ
		|					Справочник.ТиповыеАнкеты.ВопросыАнкеты КАК ТиповыеАнкетыВопросыАнкеты
		|				ГДЕ
		|					ТиповыеАнкетыВопросыАнкеты.Ссылка = &Анкета))
		|			И (КонтактнаяИнформация.Объект = &Ссылка)
		|			И ВопросыДляАнкетирования.ВидКонтактнойИнформации.Тип = КонтактнаяИнформация.Тип
		|
		|УПОРЯДОЧИТЬ ПО
		|	Вопрос,
		|	КолонкаТаблицы,
		|	НомерСтрокиВТаблице";*/
			}
			return null;
		}

		public void ЗаполнитьТабличнуюЧастьПоОпросу(/*ФизическоеЛицо, Опрос, Вопрос, ИмяСправочника, ИмяТЧ*/)
		{
			//СтруктураОтбора = Новый Структура;
			//СтруктураОтбора.Вставить("ВопросВладелец",	Вопрос);
			//ФизическоеЛицо[ИмяТЧ].Очистить();
			//КоличествоКолонок = Метаданные.Справочники[ИмяСправочника].ТабличныеЧасти[ИмяТЧ].Реквизиты.Количество();
		}

		public void ЗаполнитьКонтактнуюИнформациюПоОпросу(/*ФизическоеЛицо, Опрос, Вопрос, Раздел, ВидКИ, ТипКИ*/)
		{
			/*// Из объекта нет доступа к его КИ
*/
			/*// Следовательно, при создании сотрудника, нет возможности записать КИ
*/
			/*// А в форме доступ к набору записей есть
*/
			if(true/*ТипЗнч(ФизическоеЛицо) <> Тип("Форма")*/)
			{
			}
			//НайденныеСтроки = Опрос.Вопросы.НайтиСтроки(Новый Структура("Раздел, Вопрос",	Раздел, Вопрос));
			/*// найденная строка всегда одна
*/
			//СтрокаСОтветом = НайденныеСтроки[0];
			//КИОбъекта = Новый ТаблицаЗначений;
			//КИОбъекта.Колонки.Добавить("Поле1КИ");
			//КИОбъекта.Колонки.Добавить("Поле2КИ");
			//КИОбъекта.Колонки.Добавить("Поле3КИ");
			//КИОбъекта.Колонки.Добавить("Поле4КИ");
			//КИОбъекта.Колонки.Добавить("Поле5КИ");
			//КИОбъекта.Колонки.Добавить("Поле6КИ");
			//КИОбъекта.Колонки.Добавить("Поле7КИ");
			//КИОбъекта.Колонки.Добавить("Поле8КИ");
			//КИОбъекта.Колонки.Добавить("Поле9КИ");
			//КИОбъекта.Колонки.Добавить("Поле10КИ");
			//КИОбъекта.Колонки.Добавить("КомментарийКИ");
			//КИОбъекта.Колонки.Добавить("ВидКИ");
			//КИОбъекта.Колонки.Добавить("ТипКИ");
			//КИОбъекта.Колонки.Добавить("ПредставлениеКИ");
			if(true/*ТипКИ = Перечисления.ТипыКонтактнойИнформации.Адрес*/)
			{
				//СтрокаКИ =	КИОбъекта.Добавить();
				//СтрокаКИ.ВидКИ	= ВидКИ;
				//СтрокаКИ.ТипКИ	= ТипКИ;
				//МассивПолей	=	ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрокаСОтветом.ТиповойОтвет,	"¤");
				if(true/*МассивПолей.Количество()	>	0*/)
				{
					//СтрокаКИ.Поле1КИ = МассивПолей[0];
				}
				if(true/*МассивПолей.Количество()	>	1*/)
				{
					//СтрокаКИ.Поле2КИ = МассивПолей[1];
				}
				if(true/*МассивПолей.Количество()	>	2*/)
				{
					//СтрокаКИ.Поле3КИ = МассивПолей[2];
				}
				if(true/*МассивПолей.Количество()	>	3*/)
				{
					//СтрокаКИ.Поле4КИ = МассивПолей[3];
				}
				if(true/*МассивПолей.Количество()	>	4*/)
				{
					//СтрокаКИ.Поле5КИ = МассивПолей[4];
				}
				if(true/*МассивПолей.Количество()	>	5*/)
				{
					//СтрокаКИ.Поле6КИ = МассивПолей[5];
				}
				if(true/*МассивПолей.Количество()	>	6*/)
				{
					//СтрокаКИ.Поле7КИ = МассивПолей[6];
				}
				if(true/*МассивПолей.Количество()	>	7*/)
				{
					//СтрокаКИ.Поле8КИ = МассивПолей[7];
				}
				if(true/*МассивПолей.Количество()	>	8*/)
				{
					//СтрокаКИ.Поле9КИ = МассивПолей[8];
				}
				if(true/*МассивПолей.Количество()	>	9*/)
				{
					//СтрокаКИ.КомментарийКИ	= МассивПолей[9];
				}
				//Представление = "";
				if(true/*СокрЛП(СтрокаКИ.Поле1КИ) <> ""*/)
				{
					//Представление = Представление + ", " + СокрЛП(СтрокаКИ.Поле1КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле2КИ) <> ""*/)
				{
					//Представление = Представление + ", " + СокрЛП(СтрокаКИ.Поле2КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле3КИ) <> ""*/)
				{
					//Представление = Представление + ", " + СокрЛП(СтрокаКИ.Поле3КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле4КИ) <> ""*/)
				{
					//Представление = Представление + ", " + СокрЛП(СтрокаКИ.Поле4КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле5КИ) <> ""*/)
				{
					//Представление = Представление + ", " + СокрЛП(СтрокаКИ.Поле5КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле6КИ) <> ""*/)
				{
					//Представление = Представление + ", " + СокрЛП(СтрокаКИ.Поле6КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле7КИ) <> ""*/)
				{
					//Представление = Представление + ", дом № " + СокрЛП(СтрокаКИ.Поле7КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле8КИ) <> ""*/)
				{
					//Представление = Представление + ", корпус " + СокрЛП(СтрокаКИ.Поле8КИ);
				}
				if(true/*СокрЛП(СтрокаКИ.Поле9КИ) <> ""*/)
				{
					//Представление = Представление + ", кв." + СокрЛП(СтрокаКИ.Поле9КИ);
				}
				if(true/*СтрДлина(Представление) > 2*/)
				{
					//Представление = Сред(Представление, 3);
				}
				//СтрокаКИ.ПредставлениеКИ = Представление;
			}
			/*// по строкам объекта
*/
		}
		// Процедура заполняет физическое лицо данными из опроса
		//

		public void ЗаполнитьФизическоеЛицоПоОпросу(/*Форма, ФизическоеЛицо, Опрос*/)
		{
			//ПВХ = ПланыВидовХарактеристик.ВопросыДляАнкетирования;
			/*// Выгрузим вопросы и определим, какие из них являются КИ
*/
			//МассивВопросов = Опрос.Вопросы.ВыгрузитьКолонку("Вопрос");
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("СписокВопросов",	МассивВопросов);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ВопросыДляАнкетирования.Ссылка КАК Вопрос,
	|	ВопросыДляАнкетирования.ВидКонтактнойИнформации КАК ВидКИ,
	|	ВопросыДляАнкетирования.ВидКонтактнойИнформации.Тип КАК ТипКИ
	|ИЗ
	|	ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования
	|ГДЕ
	|	ВопросыДляАнкетирования.Ссылка В(&СписокВопросов)
	|	И ВопросыДляАнкетирования.ВидКонтактнойИнформации.Тип <> ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.ПустаяСсылка)";*/
			//ТаблицаКИ = Запрос.Выполнить().Выгрузить();
			//ТаблицаКИ.Индексы.Добавить("Вопрос");
			if(true/*Не ПустаяСтрока(Форма.Фамилия) И Не ПустаяСтрока(Форма.Имя)*/)
			{
				//Форма.Наименование		= Форма.Фамилия + " " + Форма.Имя + " " + Форма.Отчество;
			}
		}

		public object ПолучитьПредставлениеКИ(/*ТипКИ, ЗначениеКИ*/)
		{
			if(true/*ТипКИ = Перечисления.ТипыКонтактнойИнформации.Адрес*/)
			{
				//МассивПолей = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ЗначениеКИ, "¤");
				//Представление = УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдресаПоСтрока(СтрЗаменить(ЗначениеКИ, "¤", ","));
			}
			return null;
		}
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА УДАЛЕННОЕ АНКЕТИРОВАНИЕ
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// Функция формирует XSL файл
		//

		public object СформироватьXSL(/*ИмяФайлаАнкеты, КаталогАнкеты, КаталогОпроса, ДобавлятьКнопкуЗаписи, ДобавлятьКнопкуОтправки, ЭлектронныйАдресОтветов*/)
		{
			//ИмяФайлаПреобразования = "style.xsl";
			//XSLМакет = ПолучитьОбщийМакет("МакетТиповойАнкеты");
			if(true/*Не ПустаяСтрока(КаталогАнкеты)*/)
			{
				//ТекстXSL = XSLМакет.ПолучитьОбласть("ДоКнопок");
				//ТекстXSL.УдалитьСтроку(1);
				//ТекстXSL.УдалитьСтроку(ТекстXSL.КоличествоСтрок());
				//СтрокаПреобразования = ТекстXSL.ПолучитьТекст();
				//ТекстXSL = XSLМакет.ПолучитьОбласть("КнопкаОтправить2");
				//ТекстXSL.УдалитьСтроку(1);
				//ТекстXSL.УдалитьСтроку(ТекстXSL.КоличествоСтрок());
				//СтрокаПреобразования = СтрокаПреобразования + ТекстXSL.ПолучитьТекст();
				//ТекстXSL = XSLМакет.ПолучитьОбласть("ПослеКнопок");
				//ТекстXSL.УдалитьСтроку(1);
				//ТекстXSL.УдалитьСтроку(ТекстXSL.КоличествоСтрок());
				//СтрокаПреобразования = СтрокаПреобразования + ТекстXSL.ПолучитьТекст();
				//СтрокаПреобразования = СтрЗаменить(СтрокаПреобразования, "//comment11;", "LoadPath = '"+СтрЗаменить(КаталогАнкеты+ИмяФайлаАнкеты, "\", "\\")+"';");
				//СтрокаПреобразования = СтрЗаменить(СтрокаПреобразования, "//comment22;", "FName	= '" + СтрЗаменить(КаталогОпроса, "\", "\\")+"opros.xml';");
			}
			//СтрокаПреобразования = СтрЗаменить(СтрокаПреобразования, "###@###", ЭлектронныйАдресОтветов);
			//ТекстXSL.УстановитьТекст(СтрокаПреобразования);
			return null;
		}

		public void ДобавитьПоле(/*ОбъектXML, Имя, Значение*/)
		{
			//ОбъектXML.ЗаписатьАтрибут(Имя, XMLСтрока(Значение));
		}
		// ДобавитьПоле()

		public object ПолучитьОтветы(/*Выборка, Тип, ФлагКолонки = Ложь*/)
		{
			if(true/*НЕ ФлагКолонки*/)
			{
				//Вопрос	= Выборка.Вопрос;
				//Префикс	= "";
			}
			//Запрос = Новый Запрос();
			//Запрос.УстановитьПараметр("Вопрос", Вопрос);
			//ТипЗначения = Выборка[Префикс + "ТипЗначения"].Типы().Получить(0);
			if(true/*(ТипЗначения = Тип("Булево"))*/)
			{
				//ВыборкаЭлементов = Новый ТаблицаЗначений();
				//ВыборкаЭлементов.Колонки.Добавить("Код");
				//ВыборкаЭлементов.Колонки.Добавить("Ссылка");
				//ВыборкаЭлементов.Колонки.Добавить("Наименование");
				//ВыборкаЭлементов.Колонки.Добавить("Комментарий");
				//ВыборкаЭлементов.Колонки.Добавить("ТребуетРазвернутыйОтвет");
				//ВыборкаЭлементов.Колонки.Добавить("ГУИД");
				//СтрокаТаблицы = ВыборкаЭлементов.Добавить();
				//СтрокаТаблицы.Код						= ЗначениеВСтрокуВнутр(Ложь);
				//СтрокаТаблицы.Ссылка					= Ложь;
				//СтрокаТаблицы.Наименование				= Строка("Нет");
				//СтрокаТаблицы.Комментарий				= "";
				//СтрокаТаблицы.ТребуетРазвернутыйОтвет	= Ложь;
				//СтрокаТаблицы.ГУИД = СтрокаТаблицы.Код;
				//СтрокаТаблицы = ВыборкаЭлементов.Добавить();
				//СтрокаТаблицы.Код						= ЗначениеВСтрокуВнутр(Истина);
				//СтрокаТаблицы.Ссылка					= Истина;
				//СтрокаТаблицы.Наименование				= Строка("Да");
				//СтрокаТаблицы.Комментарий				= "";
				//СтрокаТаблицы.ТребуетРазвернутыйОтвет	= Ложь;
				//СтрокаТаблицы.ГУИД = СтрокаТаблицы.Код;
			}
			return null;
		}
		// ПолучитьОтветы()

		public object ПолучитьТипЗначенияОтвета(/*Выборка, ФлагКолонки*/)
		{
			if(true/*НЕ ФлагКолонки*/)
			{
				//Вопрос	= Выборка.Вопрос;
				//Префикс	= "";
			}
			//Параметры = Новый Структура("Представление, Тип, Длина, СпособОтвета, СтрокВТаблице, Ответы");
			//ТипЗначения = Выборка[Префикс + "ТипЗначения"];
			//ДлинаТипа   = Выборка[Префикс + "Длина"];
			if(true/*(ТипЗначения.СодержитТип(Тип("Булево")))*/)
			{
				//Параметры.Тип = Строка(ТипЗначения);
			}
			//Ответы = ПолучитьОтветы(Выборка, Тип, ФлагКолонки);
			//ЕстьОтветы = Ответы.Количество() > 0;
			if(true/*Выборка[Префикс + "ТипОтветаНаВопрос"]  = Перечисления.ТипыОтветаНаВопросАнкеты.КонтактнаяИнформация*/)
			{
				//СтрокаТипКИ = ОбщегоНазначения.ПолучитьИмяЭлементаПеречисленияПоЗначению(Выборка[Префикс + "ТипКонтактнойИнформации"]);
				//СтрокаВидКИ = ОбщегоНазначения.ПолучитьИмяЭлементаПеречисленияПоЗначению(Выборка[Префикс + "ВидОбъектаКонтактнойИнформации"]);
				//Параметры.Тип			= ""+СтрокаТипКИ+"¤"+СтрокаВидКИ;
				//Параметры.СтрокВТаблице	= 0;
				/*// вопрос не табличный, значит строк - 0!
*/
				//Параметры.Представление	= "ПолеВвода";
				//Параметры.СпособОтвета	= "ВСвободнойФорме";
			}
			//Параметры.Ответы = Ответы;
			return null;
		}
		// ПолучитьТипЗначенияОтвета()

		public void ЗаписатьВопрос(/*ОбъектXML, Выборка, ФлагКолонки*/)
		{
			if(true/*НЕ ФлагКолонки*/)
			{
				//Вопрос	= Выборка.Вопрос;
				//Префикс	= "";
			}
			//Параметры	= ПолучитьТипЗначенияОтвета(Выборка, ФлагКолонки);
			if(true/*Выборка.ТипОтветаНаВопрос = Перечисления.ТипыОтветаНаВопросАнкеты.Табличный и НЕ ФлагКолонки*/)
			{
				//ТабличныйВопрос = Выборка.Вопрос;
				/*// значит имеем дело с табличным вопросом
*/
				//Параметры = ПолучитьТипЗначенияОтвета(Выборка, Ложь);
				//ОбъектXML.ЗаписатьНачалоЭлемента("Вопрос");
				//ДобавитьПоле(ОбъектXML,"Ид",						ТабличныйВопрос.УникальныйИдентификатор());
				//ДобавитьПоле(ОбъектXML,"Наименование",				?(ПустаяСтрока(Выборка.ПолнаяФормулировка), Выборка.Наименование, Выборка.ПолнаяФормулировка));
				//ДобавитьПоле(ОбъектXML,"Комментарий",				Выборка.Наименование);
				//ДобавитьПоле(ОбъектXML,"Обязательный",				Выборка.ОбязателенДляЗаполнения);
				//ДобавитьПоле(ОбъектXML,"СпособОтвета",				Параметры.СпособОтвета);
				//ДобавитьПоле(ОбъектXML,"ТипЗначенийОтвета",			Параметры.Тип);
				//ДобавитьПоле(ОбъектXML,"Представление",				Параметры.Представление);
				//ДобавитьПоле(ОбъектXML,"КоличествоСтрокТаблицы",	Параметры.СтрокВТаблице);
				//КолонкиТаблицы = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				while(true/*КолонкиТаблицы.Следующий()*/)
				{
					//ЗаписатьВопрос(ОбъектXML, КолонкиТаблицы, Истина);
				}
				/*;
			
		ОбъектXML.ЗаписатьКонецЭлемента();*/
				/*// Вопрос
*/
			}
		}
		// ЗаписатьВопрос()

		public void ЗаписатьРаздел(/*ОбъектXML, РазделДляЗаписи, РазделНаименование*/)
		{
			//ОбъектXML.ЗаписатьНачалоЭлемента("Группа");
			if(true/*РазделДляЗаписи = NULL*/)
			{
				//ДобавитьПоле(ОбъектXML,"Ид",			"");
				//ДобавитьПоле(ОбъектXML,"Комментарий",	"");
			}
			//ДобавитьПоле(ОбъектXML,"Наименование", РазделНаименование);
		}
		// ЗаписатьРаздел()

		public void ДобавитьОтвет(/*ОбъектXML, Вопрос, ТипОтветаНаВопрос, ВыборкаОтветовИзОпроса, ТабличныйВопрос = Неопределено, НомерСтрокиВТаблице = Неопределено*/)
		{
			if(true/*ТабличныйВопрос = Неопределено*/)
			{
				//ВопросПоиска = Новый Структура("Вопрос");
				//ВопросПоиска.Вопрос				= Вопрос;
				/*// выберем ответы по указанному вопросу
*/
			}
			if(true/*ВыборкаОтветовИзОпроса <> Неопределено*/)
			{
				//ВыборкаОтветовИзОпроса.Сбросить();
			}
			//ОбъектXML.ЗаписатьНачалоЭлемента("Вопрос");
			//ДобавитьПоле(ОбъектXML,"Ид", Вопрос.УникальныйИдентификатор());
			if(true/*(Вопрос.Предопределенный И 
			(Вопрос.ТипЗначения.СодержитТип(Тип("Строка")) ИЛИ
			Вопрос.ТипЗначения.СодержитТип(Тип("Дата")) ИЛИ 
			Вопрос.ТипЗначения.СодержитТип(Тип("Число")) ) ) ИЛИ
			(НЕ Вопрос.Предопределенный И
			(ТипОтветаНаВопрос = Перечисления.ТипыОтветаНаВопросАнкеты.Строка ИЛИ
			ТипОтветаНаВопрос = Перечисления.ТипыОтветаНаВопросАнкеты.Число ИЛИ
			ТипОтветаНаВопрос = Перечисления.ТипыОтветаНаВопросАнкеты.Дата ИЛИ
			ТипОтветаНаВопрос = Перечисления.ТипыОтветаНаВопросАнкеты.КонтактнаяИнформация ИЛИ
			ТипОтветаНаВопрос = Перечисления.ТипыОтветаНаВопросАнкеты.Текст))*/)
			{
				//ОбъектXML.ЗаписатьНачалоЭлемента("Значение");
				if(true/*ВыборкаОтветовИзОпроса <> Неопределено*/)
				{
					while(true/*ВыборкаОтветовИзОпроса.НайтиСледующий(ВопросПоиска)*/)
					{
						if(true/*Вопрос.ТипЗначения.СодержитТип(Тип("Дата")) ИЛИ
							Вопрос.ТипЗначения.СодержитТип(Тип("Число"))*/)
						{
							if(true/*ЗначениеЗаполнено(ВыборкаОтветовИзОпроса.ТиповойОтвет)*/)
							{
								//ОбъектXML.ЗаписатьТекст(XMLСтрока(ВыборкаОтветовИзОпроса.ТиповойОтвет));
							}
						}
					}
					//;;
				}
				//ОбъектXML.ЗаписатьКонецЭлемента();
				/*// Значение
*/
			}
			//ОбъектXML.ЗаписатьКонецЭлемента();
			/*// Вопрос
*/
		}
		// ДобавитьОтвет

		public void ОбработкаЗапроса(/*Выборка, ОбъектXML*/)
		{
			/*;
	
	Разделы = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);*/
			while(true/*Разделы.Следующий()*/)
			{
				//Вопросы = Разделы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				if(true/*Разделы.КодРаздела = NULL*/)
				{
					//РазделНаименование	= "";
				}
				//ЗаписатьРаздел(ОбъектXML, Разделы.Раздел, РазделНаименование);
				/*// теперь обходим вопросы
*/
				while(true/*Вопросы.Следующий()*/)
				{
					//ЗаписатьВопрос(ОбъектXML, Вопросы, Ложь);
				}
				/*;
		
		ОбъектXML.ЗаписатьКонецЭлемента();*/
			}
			//;;
		}
		// ОбработкаЗапроса()

		public object ВыгрузитьАнкетуВXML(/*Анкета, ИмяФайла = "", ОпрашиваемоеЛицо, ДокРассылки, ДокОпрос = Неопределено*/)
		{
			if(true/*Анкета = Неопределено ИЛИ Анкета.Пустая()*/)
			{
				/*// Нечего выгружать!
*/
			}
			//Выборка		= ВыполнитьЗапросПоАнкете(Анкета);
			//XML			= Новый ЗаписьXML();
			//XML.Отступ	= Истина;
			if(true/*ПустаяСтрока(ИмяФайла)*/)
			{
				//XML.УстановитьСтроку("UTF-8");
				/*//16
*/
			}
			//XML.ЗаписатьОбъявлениеXML();
			//XML.ЗаписатьИнструкциюОбработки("xml-stylesheet","type=""text/xsl"" href=""style.xsl""");
			//XML.ЗаписатьНачалоЭлемента("Заголовок");
			//ДобавитьПоле(XML,"ДатаФормирования",	XMLСтрока(ТекущаяДата()));
			//ДобавитьПоле(XML,"ВерсияФормата",		"1.1");
			//ДобавитьПоле(XML,"ИдОпрашиваемого",		ЗначениеВСтрокуВнутр(ОпрашиваемоеЛицо));
			//XML.ЗаписатьНачалоЭлемента("Анкета");
			//ДобавитьПоле(XML,"Ид",					Анкета.УникальныйИдентификатор());
			//ДобавитьПоле(XML,"Наименование",		Анкета.НаименованиеАнкеты);
			//ДобавитьПоле(XML,"Комментарий",			Анкета.Вступление);
			if(true/*ДокРассылки <> Неопределено*/)
			{
				//ДобавитьПоле(XML,"ИдРассылки",		ДокРассылки.УникальныйИдентификатор());
			}
			//ОбработкаЗапроса(Выборка, XML);
			//XML.ЗаписатьКонецЭлемента();
			/*// Анкета
*/
			//XML.ЗаписатьНачалоЭлемента("РезультатОпроса");
			//ДобавитьПоле(XML,"ДатаЗаполненияАнкеты",	XMLСтрока(?(ЗначениеЗаполнено(ДокОпрос), ДокОпрос.Дата, "")));
			//ДобавитьПоле(XML,"ИдАнкеты",				Анкета.УникальныйИдентификатор());
			//ДобавитьПоле(XML,"Наименование",			Анкета.НаименованиеАнкеты);
			if(true/*ДокРассылки <> Неопределено*/)
			{
				//ДобавитьПоле(XML,"ИдРассылки",			ДокРассылки.УникальныйИдентификатор());
			}
			if(true/*ЗначениеЗаполнено(ДокОпрос)*/)
			{
				//ВыборкаОтветовИзОпроса = ВыполнитьЗапросПоОпросу(ДокОпрос).Выбрать();
			}
			//ВыборкаВопросовДляОтветов = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Вопрос");
			while(true/*ВыборкаВопросовДляОтветов.Следующий()*/)
			{
				if(true/*ВыборкаВопросовДляОтветов.ТипОтветаНаВопрос <> Перечисления.ТипыОтветаНаВопросАнкеты.Табличный*/)
				{
					//ДобавитьОтвет(XML, ВыборкаВопросовДляОтветов.Вопрос, ВыборкаВопросовДляОтветов.ТипОтветаНаВопрос, ВыборкаОтветовИзОпроса);
				}
			}
			/*;
		
		XML.ЗаписатьКонецЭлемента();*/
			/*// РезультатОпроса
*/
			//XML.ЗаписатьКонецЭлемента();
			/*// Заголовок
*/
			if(true/*ЗначениеЗаполнено(ИмяФайла)*/)
			{
				//XML.Закрыть();
			}
			return null;
		}
		// ВыгрузитьАнкетуВXML()

		public object ПолучитьИмяФайлаАнкеты(/*ТиповаяАнкета*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Анкета",	ТиповаяАнкета);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ТиповыеАнкеты.Код КАК Номер,
	|	ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация
	|ИЗ
	|	Справочник.ТиповыеАнкеты КАК ТиповыеАнкеты
	|ГДЕ
	|	ТиповыеАнкеты.Ссылка = &Анкета";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			//Выборка.Следующий();
			//КодАнкеты = ОбщегоНазначения.ПолучитьНомерНаПечать(Выборка);
			return null;
		}
		// ПолучитьИмяФайлаАнкеты()

		public object СформироватьВложение(/*ТиповаяАнкета, ОпрашиваемоеЛицо = Неопределено, ЭлектронныйАдресОтветов = "", ДокРассылки = Неопределено, ДокОпрос = Неопределено, ИмяФайла = "", ФормироватьXSL = Ложь, КаталогАнкеты = "", КаталогОпроса = ""*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Анкета",	ТиповаяАнкета);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	КОЛИЧЕСТВО(*) КАК КоличествоВопросовВРазделе,
	|	ТиповыеАнкетыВопросыАнкеты.Раздел,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос
	|ИЗ
	|	Справочник.ТиповыеАнкеты.ВопросыАнкеты КАК ТиповыеАнкетыВопросыАнкеты
	|ГДЕ
	|	ТиповыеАнкетыВопросыАнкеты.Ссылка = &Анкета
	|
	|СГРУППИРОВАТЬ ПО
	|	ТиповыеАнкетыВопросыАнкеты.Раздел,
	|	ТиповыеАнкетыВопросыАнкеты.Вопрос
	|
	|ИМЕЮЩИЕ
	|	КОЛИЧЕСТВО(*) > 1";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				//Сообщить("Вопрос """+Выборка.Вопрос + """ встречается в разделе """ + Выборка.Раздел + """ более одного раза!");
			}
			if(true/*НЕ Выборка.Количество() = 0*/)
			{
			}
			if(true/*НЕ ЗначениеЗаполнено(ИмяФайла)*/)
			{
				//ИмяФайла = ПолучитьИмяФайлаАнкеты(ТиповаяАнкета);
			}
			//ИмяФайлаПреобразования = "style.xsl";
			//ФайлАнкеты			= Новый Файл(ИмяФайла);
			//ТекстXSL			= Новый ТекстовыйДокумент;
			//Преобразование		= Новый ПреобразованиеXSL;
			if(true/*ФормироватьXSL*/)
			{
				//ТекстXSL = Анкетирование.СформироватьXSL(ИмяФайла, КаталогАнкеты, КаталогОпроса, ДокОпрос = Неопределено, ЭлектронныйАдресОтветов <> "e-mail ответов", ЭлектронныйАдресОтветов);
				//ТекстXSL.Записать(КаталогВременныхФайлов()+ИмяФайлаПреобразования);
			}
			//ВыгрузитьАнкетуВXML(ТиповаяАнкета, КаталогВременныхФайлов() + ИмяФайла, ОпрашиваемоеЛицо, ДокРассылки, ДокОпрос);
			return null;
		}
		// СформироватьВложение()

		public void ОткрытьВложение(/*ТиповаяАнкета*/)
		{
			if(true/*СформироватьВложение(ТиповаяАнкета, , "e-mail ответов", , , , Истина)*/)
			{
				//ИмяФайла = ПолучитьИмяФайлаАнкеты(ТиповаяАнкета);
				//ЗапуститьПриложение(КаталогВременныхФайлов() + ИмяФайла);
			}
		}
		// ОткрытьВложение()

		public void СоздатьОпрос(/*УчетнаяЗапись, ТекущийПредмет*/)
		{
			if(true/*Не УправлениеЭлектроннойПочтой.ПолучитьЗначениеРеквизитаУчетнойЗаписи(УчетнаяЗапись, "ИспользоватьКлассификациюПисемПоПредметам")*/)
			{
				//Предупреждение("Для выбранной учетной записи электронной почты не используется классифицикация писем по предметам. Создание опроса невозможно!");
			}
			//ЗапросПоПредмету = Новый Запрос;
			//ЗапросПоПредмету.УстановитьПараметр("ПредметКонтакта",	ТекущийПредмет);
			//ЗапросПоПредмету.УстановитьПараметр("Отправленное",		Перечисления.СтатусыПисем.Отправленное);
			//ЗапросПоПредмету.УстановитьПараметр("Полученное",		Перечисления.СтатусыПисем.Полученное);
			/*ЗапросПоПредмету.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ПредметыЭлектронныхПисем.Регистратор КАК ЭП,
	|	ВЫБОР
	|		КОГДА ВложенияЭлектронныхПисем.ИмяФайла ПОДОБНО ""%.xml""
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ЕстьРезультатОпроса,
	|	ВЫБОР
	|		КОГДА ВложенияЭлектронныхПисем.ИмяФайла ПОДОБНО ""%.xml""
	|			ТОГДА ВложенияЭлектронныхПисем.Хранилище
	|	КОНЕЦ КАК Хранилище,
	|	ПредметыЭлектронныхПисем.Регистратор.КомуТЧ.(
	|		ВЫБОР
	|			КОГДА ПредметыЭлектронныхПисем.Регистратор.СтатусПисьма = &Отправленное
	|				ТОГДА ПредметыЭлектронныхПисем.Регистратор.КомуТЧ.АдресЭлектроннойПочты
	|			ИНАЧЕ """"
	|		КОНЕЦ КАК АдресКому
	|	) КАК Кому,
	|	ВЫБОР
	|		КОГДА ПредметыЭлектронныхПисем.Регистратор.СтатусПисьма = &Полученное
	|			ТОГДА ПредметыЭлектронныхПисем.Регистратор.ОтправительАдресЭлектроннойПочты
	|		ИНАЧЕ """"
	|	КОНЕЦ КАК АдресОтКого
	|ИЗ
	|	РегистрСведений.ПредметыЭлектронныхПисем КАК ПредметыЭлектронныхПисем
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВложенияЭлектронныхПисем КАК ВложенияЭлектронныхПисем
	|		ПО ПредметыЭлектронныхПисем.Регистратор = ВложенияЭлектронныхПисем.Объект
	|ГДЕ
	|	ПредметыЭлектронныхПисем.Предмет = &ПредметКонтакта
	|	И ВложенияЭлектронныхПисем.ИДФайлаПочтовогоПисьма = """"
	|	И ВложенияЭлектронныхПисем.Объект.Ссылка ССЫЛКА Документ.ЭлектронноеПисьмо
	|	И ВложенияЭлектронныхПисем.ИмяФайла ПОДОБНО ""%.xml""";*/
			//РезультатЗапроса = ЗапросПоПредмету.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
				//Предупреждение("Cоздание опроса возможно только по файлам-вложениям с расширением xml!");
			}
			//ВыборкаЗапроса 	 = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.Прямой);
			//ОбработкаРезультатовАнкетирования = Обработки.ЗагрузкаРезультатовАнкетирования.Создать();
			while(true/*ВыборкаЗапроса.Следующий()*/)
			{
				//ХранилищеИзЗапроса = ВыборкаЗапроса.Хранилище.Получить();
				/*//Попытка
*/
				//ИмяВрФайла = ПолучитьИмяВременногоФайла();
				//ХранилищеИзЗапроса.Записать(ИмяВрФайла);
				//Файл = Новый ЧтениеXML();
				//Файл.ОткрытьФайл(ИмяВрФайла);
				//ОбъектЗагрузки 	= ОбработкаРезультатовАнкетирования.НайтиОбъектДляЗагрузки(Файл);
				//Анкета 			= ОбработкаРезультатовАнкетирования.ПолучитьАнкетуИзФайла(Файл);
				//ДатаОпроса 		= ОбработкаРезультатовАнкетирования.ПолучитьДатуФормированияАнкеты(Файл);
				if(true/*Анкета = Неопределено*/)
				{
				}
				if(true/*ОбъектЗагрузки = Неопределено*/)
				{
					/*// если объект загрузки найти по ИдОпрашиваемого найти не удалось, тогда пробуем его найти
*/
					/*// по ФИО и дате рождения, если это физлицо(конт. лицо), либо по ИНН, если это контрагент
*/
					//Файл.ОткрытьФайл(ИмяВрФайла);
					//ОбъектЗагрузки = ОбработкаРезультатовАнкетирования.НайтиОбъектПоАнкетнымДанным(Файл, Анкета);
				}
				//ДокОпрос = ОбработкаРезультатовАнкетирования.НайтиДокументОпрос(ДатаОпроса, Анкета);
				if(true/*НЕ ЗначениеЗаполнено(ОбъектЗагрузки)*/)
				{
					//ОбъектЗагрузки = ОбработкаРезультатовАнкетирования.НайтиОбъектПоАнкетнымДанным(Файл, Анкета);
				}
				if(true/*ЗначениеЗаполнено(ДокОпрос)*/)
				{
					//Ответ = Вопрос("Найден документ опрос по данной анкете. Возможно такой документ уже есть в ИБ. Продолжить зарузку данных?", РежимДиалогаВопрос.ДаНетОтмена, , КодВозвратаДиалога.Нет);
					if(true/*Ответ = КодВозвратаДиалога.Нет*/)
					{
						//ФормаОЗ = ДокОпрос.ПолучитьФорму("ФормаДокумента");
						//ФормаОЗ.Открыть();
						//Сообщить("Найден документ опрос по данной анкете.");
					}
				}
				//Файл.ОткрытьФайл(ИмяВрФайла);
				//ДокРассылки 		= ОбработкаРезультатовАнкетирования.ПолучитьДокРассылкиИзФайла(Файл);
				if(true/*НЕ ЗначениеЗаполнено(Анкета)*/)
				{
				}
				/*// загружаем в документ Опрос
*/
				//ДокОпроса = Документы.Опрос.СоздатьДокумент();
				while(true/*Файл.Прочитать()*/)
				{
					if(true/*(Файл.ТипУзла  = ТипУзлаXML.НачалоЭлемента) и ((Файл.Имя = "Вопрос"))*/)
					{
						//Значение 		= Файл.ПолучитьАтрибут("Ид");
						if(true/*Значение 	= ""*/)
						{
							//Файл.Прочитать();
							/*// Пустые вопросы пропускаем
*/
						}
						//ОбработкаРезультатовАнкетирования.ПрочитатьВопрос(Файл, ДокОпроса);
					}
				}
				/*;
		Файл.Закрыть();*/
				//ДокОпроса.ОпрашиваемоеЛицо = ОбъектЗагрузки;
				//ДокОпроса.Ответственный    = ПараметрыСеанса.ТекущийПользователь;
				//ДокОпроса.ТиповаяАнкета	   = Анкета;
				//ДокОпроса.Рассылка 		   = ДокРассылки;
				//ДокОпроса.Дата			   = ДатаОпроса;
				//ДокОпроса.ПолучитьФорму("ФормаДокумента").ОткрытьМодально();
				//ОбработкаПрерыванияПользователя();
			}
			//;;
		}

		public void ВставитьКнопкуСоздатьОпросВКоманднуюПанель(/*КоманднаяПанель, ОбработчикКоманды*/)
		{
			//Кнопки = КоманднаяПанель.Кнопки.Подменю.Кнопки;
			/*// ищем разделитель
*/
			//МестоВставки = 0;
			//Кнопки.Вставить(МестоВставки, "СоздатьОпрос", ТипКнопкиКоманднойПанели.Действие, "Создать опрос", ОбработчикКоманды);
			//Кнопки.Вставить(МестоВставки, "РазделительСоздатьОпрос", ТипКнопкиКоманднойПанели.Разделитель);
		}

		public void ДобавитьКомандыВФормуЭлектронногоПисьма(/*ФормаДокумента, ДополнительныеДействия*/)
		{
			/*// команду нужно добавить в подменю Подменю командных панелей:
*/
			/*// - ДействияФормыПисьмоКОтправке
*/
			/*// - ДействияФормыПисьмоКПросмотру
*/
			/*// сделать это нужно с разделителем перед первым разделителем
*/
			//ВставитьКнопкуСоздатьОпросВКоманднуюПанель(ФормаДокумента.ЭлементыФормы.ДействияФормыПисьмоКОтправке, ДополнительныеДействия);
			//ВставитьКнопкуСоздатьОпросВКоманднуюПанель(ФормаДокумента.ЭлементыФормы.ДействияФормыПисьмоКПросмотру, ДополнительныеДействия);
		}

		public void ВыполнитьКомандыФормыЭлектронногоПисьма(/*ИмяКоманды, ФормаДокумента*/)
		{
			if(true/*ИмяКоманды = "СоздатьОпрос"*/)
			{
				//ТекущийПредмет = ФормаДокумента.ПредметКонтакта;
				//СоздатьОпрос(ФормаДокумента.УчетнаяЗапись, ТекущийПредмет);
			}
		}
	}
}
